//package webservice;
//
//import org.apache.axis.client.Call;
//import org.apache.axis.client.Service;
//import org.apache.axis.encoding.XMLType;
//
//import javax.xml.namespace.QName;
//import javax.xml.rpc.ParameterMode;
//import javax.xml.rpc.ServiceException;
//import java.rmi.RemoteException;
//import java.util.HashMap;
//
///**
// *
// * 电子凭证可可用
// *
// */
//public class WSClientHander {
//    private static ThreadLocal<HashMap<String, Call>> threadLocal = new ThreadLocal();
//
//    public static Object callMethodByAddress(String address, String opName, Object[] paras) {
//        Object retObj = null;
//        //   if ((null == address) || (address.length() == 0))
//
//        // if ((null == opName) || (opName.length() == 0))
//
//        Call call = getCall(address);
//        retObj = invokeMethod(call, opName, paras);
//        return retObj;
//    }
//
//    private static Object invokeMethod(Call call, String opName, Object[] paras) {
//        Object retObj = null;
//        // call.setOperationName(new QName("http://evoucher.com/", opName));
//        call.setOperationName(new QName("http://financeService.assp", opName));
//        Object[] objs = new Object[paras.length];
//        int a = 0;
//        Object[] arr$ = paras;
//        int len$ = arr$.length;
//        for (int i$ = 0; i$ < len$; ++i$) {
//            Object objpara = arr$[i$];
//            objs[a] = objpara;
//            ++a;
//        }
//
//        if (opName.equals("requestData")) {
//            call.addParameter(new QName("", "requestMessage"), XMLType.XSD_BASE64, ParameterMode.IN);
//            call.setReturnType(XMLType.XSD_BASE64);
//        } else if (opName.equals("getData")) {
//            call.addParameter(new QName("", "admDivCode"), XMLType.XSD_STRING, ParameterMode.IN);
//            call.addParameter(new QName("", "stYear"), XMLType.XSD_INT, ParameterMode.IN);
//            call.setEncodingStyle(null);
//            //call.addParameter(new QName("", "vtCode"), XMLType.XSD_BASE64, ParameterMode.IN);
//            call.addParameter("certID", XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
//
//            call.setReturnType(XMLType.XSD_ANY);
//            call.setUseSOAPAction(true);
//
//            System.out.println("getData");
//        }
//
//
//        try {
//            retObj = call.invoke(objs);
//        } catch (RemoteException e) {
//            // throw new EVoucherException(ExceptionConstant.EVS905 + e.getMessage(), e);
//        }
//        return retObj;
//    }
//
//    private static Call getCall(String address) {
//        Call call = null;
//        HashMap callHash = (HashMap) threadLocal.get();
//        if ((callHash == null) || (!(callHash.containsKey(address)))) {
//            try {
//                Service service = new Service();
//                call = (Call) service.createCall();
//                call.setTargetEndpointAddress(address);
//            } catch (ServiceException e) {
//                //  throw new EVoucherException(ExceptionConstant.EVS904, e);
//            }
//            if (callHash == null) {
//                callHash = new HashMap();
//                threadLocal.set(callHash);
//            }
//            callHash.put(address, call);
//        } else {
//            call = (Call) callHash.get(address);
//        }
//
//        call.clearOperation();
//
//        call.clearHeaders();
//        return call;
//    }
//}